Atomic Design
https://qiita-image-store.s3.amazonaws.com/0/11290/ba5734c3-0fe1-0aae-1b1c-0cd28e05abe9.png
Atom
最小単位
ボタンとか、アイコンとか
単一責任の原則(変更する理由はたった1つ原則) (SRP)
Molecule
Atomを組み合わせて作られる要素
単一の機能を持つ
単一責任の原則(変更する理由はたった1つ原則) (SRP)
Organism
HeaderとかFooterがよく例に挙げられる
Moleculeとの違いがわからなくなる
Moleculeと異なり複数の役割を持つ
Template
ワイヤーフレーム
Page
実際のデータを注入するところ
Oranigms, Template, Pageは 機能ではなくレイアウトとしての役割を持つ?ref
「機能としての役割」はそれ以下のもので完結させる
なのでこれら3つは、レイアウトに関する単一責任を持つ、のか
スタイルの話
以下の2つに分けられる ref
見た目のスタイル
小さいコンポーネント一つ一つの見た目
例えばボタンとか?
レイアウトのスタイル
配置や、子に対する見た目
再利用性を高めるための2つの制限
子は親の"レイアウトのスタイル"を知ってはならない
子はmarginなどを持つな
親は子の"見た目のスタイル"を知ってはならない
Package by Featureの考え方と完全に反しているんだよなmrsekut.icon
Viewだからやりづらい、というのはある
が、「絶対にここのfeatureでしか使わないだろ」というのをmoleculesとかに入れる意味はないと思うmrsekut.icon
packages/とcommons/を作って、後者の中をatomic designにしたりすればいいのでは?
ディレクトリ構造
実装
https://patternlab.io/
拡張
吉井健文氏のAtomic Redesign
https://zenn.dev/takepepe/articles/atomic-redesign
https://github.com/takefumi-yoshii/atomic-redesign
UIを基準にではなく、依存関係を軸にレイヤーを分ける
Extending Atomic Design
https://www.graat.co.jp/blogs/cjznvlxp601gx0830aszb7o3m
Atomic Component
https://medium.com/ge-design/ges-predix-design-system-8236d47b0891
rinciples、Basics、Components、Templates、Features、Applications
https://wereheavyweight.medium.com/how-were-using-component-based-design-5f9e3176babb
Identity、Elements、Components、Compositions、Layout、Pages
https://karrisaarinen.com/posts/building-airbnb-design-system/
分類しない(?)
https://frasco.io/atomic-design-molecules-organisms-dc937b5989
atoms, helpers, standalone, template, pages
https://uxdesign.cc/atomic-design-creativity-28ef74d71bc6
科学的なメタファーではなく音楽のメタファーを使う
ハーモニー、メロディ、リズム
BCCD Design
アクセシビリティの観点で粒度を分ける
https://zenn.dev/takepepe/articles/nextjs-testing-strategy-2022
https://zenn.dev/takepepe/articles/jest-custom-matcher-for-atomic-design
そのテスト
参考
フロントエンドのコンポーネント設計に立ち向かう - Qiita
https://logmi.jp/tech/articles/300657
様々なatomic design拡張の紹介
https://mizchi.hatenablog.com/entry/2018/06/07/203739
https://note.com/tabelog_frontend/n/n07b4077f5cf3
https://zenn.dev/ynakamura/articles/8fab06bba527b5
https://zenn.dev/takepepe/articles/6978c067faab9e7d33c2
https://zenn.dev/t_keshi/articles/bulletproof-react-2022#アトミックデザインじゃないの%EF%BC%9F